The present invention relates to an image processing apparatus. It is known in the art that in image processing, magnified images, reduced images and rotated images or other processed images are displayed on a display device by processing a stored original digital image.
The present invention also relates to a coordinate transformation technique used in digital image processing, and more particularly to a technique of accessing a one-dimensional address on a one-dimensional coordinate system by using a two-dimensional address on a two-dimensional coordinate system.
The present invention also relates to a coordinate transformation technique used for digital image processing and the like, and more particularly to coordinate transformation between two two-dimensional coordinate systems.
The present invention also relates to a data calculation technique used for digital image processing and the like, and more particularly to a technique for performing binary operation between two pixel data at high speed.
The present invention also relates to a data width conversion technique used for digital data processing, and more particularly to a memory unit which can cope with a change in data width.
It is known in the art that in image processing, a digital image is displayed on a display device, or other processed images such as magnified images, reduced images and rotated images are also displayed by processing a stored original image.
It is necessary for such image processing to transform the coordinate value of an address.
Transformation between one-dimensional and two-dimensional coordinate systems is often used with an image processing apparatus. Conventionally hardware technique or software technique with CPUs have been used for coordinate transformation. With the hardware technique, a special image memory called a frame buffer has been used which has a fixed image size to be displayed and a predetermined image to be processed.
The above hardware transformation technique has an advantage that if an image size is fixed, the two-dimensional coordinate values of an image have a very simple correspondence with the one-dimensional coordinate values of memory addresses of actual data. However, if the image size or the pixel address is to be changed, the capacity of an image memory becomes bulky and the relation between the image coordinate values and actual one-dimensional addresses becomes complicated, leading to a difficulty of improving the image quality, image resolution, and memory use efficiency.
The above software transformation technique has a problem of an increase of programs for calculating addresses and a problem of a long processing time.
In view of the above, there has been proposed to use a coordinate transformation circuit for transforming addresses represented by two-dimensional coordinate values into one-dimensional actual addresses (refer to Japanese Patent Laid-open Publication No. 63-6645). However, a particular transformation circuit is not proposed in the Publication, and this technique has not yet realized in practice.
A two-dimensional digital image is displayed by allocating a number of pixels to a display unit in a matrix format and giving image information such as density to each pixel.
In order to edit a digital image, such as magnification, reduction, rotation, movement, and modification, it is necessary to transfer the density of each pixel of an original image to another pixel. Namely, two-dimensional coordinate transformation is required for transforming one pixel coordinate value to another pixel coordinate value.
Such transformation has been executed heretofore by hardware technique or software technique.
Although the hardware scheme takes less processing time, it limits the type of transformation to simple scheme one such as affine transformation. This is also associated with a problem of a fixed image size and position. The software scheme can freely select the type of transformation, but it poses a problem of a long processing time required for image conversion.
Texture mapping or the like that is well known for obtaining two-dimensional image of a three-dimensional image can obtain a desired converted image, but it requires complicated equations for coordinate transformation so that a hardware scheme is not suitable, and also a software scheme requires complicated programs for sequentially processing all pixels for a long time. Furthermore, even if the same transformation is executed for a plurality of images, similar calculations must be repeated for each image, thereby not reducing the processing time.
Inter-pixel data calculation in digital image processing, as for interpolation of values of data between sampled points to allow for enlargement of an image, is often executed by software with CPUs or hardware with a limited type of calculations such as addition, subtraction, multiplication, division and the combination thereof.
The software scheme takes a lot of processing time, and the hardware scheme limits applications.
A digital image includes a tonal image having a pixel data of a tonal value representative of the density of color, and a specified (spot) color image having a pixel data of a color discrimination number called a color number.
A tonal image includes a monochromatic binary image, monochromatic multi-value image, and a full color image composed of primary color multi-value images (four or three colors). The data width of a pixel of these images generally used is 1 bit, 8 bits (1 byte), 32 bit (4 bytes) or 24 bits (3 bytes) respectively.
A specified color image is mainly used as a masking image and a tint image. The data width of a pixel of these images generally used is 1 bit or 8 bit.
As above, in digital image processing, the data width changes with the type of an image to be processed.
A digital processing apparatus such as a computer has a specific bus size, or the number of parallel accessible bits, and processes data in units of specific bits to obtain a better efficiency. For image processing, particularly for image processing including a prepress process, it is preferable to use, or there is often used in actual, an apparatus having a bus size capable of parallel processing 32 bits which correspond to the data width of a pixel of a full color image represented by four primary colors Y (yellow), M (magenta), C (cyan), and K (black) each having 8 bit 256 tonal values.
However, as described above, the image data uses various data widths (bit length). For example, if an image processing apparatus having a bus size of 32 bits processes a pixel data of 1 byte (8 bits) width, it reads/writes the data on the four pixel unit basis. In order to read/write the data one pixel after another, the data is required to be processed by software with CPUs, resulting in a long processing time.
Although 8 bit data may be stored in the 32 bit space of a memory of the image processing apparatus running on the 32 bit basis, three fourth of the memory capacity becomes unused.